home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 026-050 / scopedisk33 / dutils / libs.c < prev    next >
C/C++ Source or Header  |  1995-03-18  |  1KB  |  51 lines

  1. /*
  2.  *  LIBS.C
  3.  *
  4.  *  Libs [libname]
  5.  *
  6.  *  Libs        - list currently loaded libraries
  7.  *  Libs dres.library    - expunge specified lib on last close if no
  8.  *              further opens
  9.  */
  10.  
  11. #include <local/typedefs.h>
  12.  
  13. extern EXECBASE *SysBase;
  14.  
  15. main(ac,av)
  16. char *av[];
  17. {
  18.     short i;
  19.     LIB *lib;
  20.  
  21.     if (ac == 1) {
  22.     NODE *node;
  23.     for (node = SysBase->LibList.lh_Head; node->ln_Succ; node = node->ln_Succ) {
  24.         printf("%-20s ver %3ld  refs %ld\n",
  25.         node->ln_Name,
  26.         ((LIB *)node)->lib_Version,
  27.         ((LIB *)node)->lib_OpenCnt
  28.         );
  29.     }
  30.     puts("");
  31.     for (node = SysBase->DeviceList.lh_Head; node->ln_Succ; node = node->ln_Succ) {
  32.         printf("%-20s ver %3ld  refs %ld\n",
  33.         node->ln_Name,
  34.         ((LIB *)node)->lib_Version,
  35.         ((LIB *)node)->lib_OpenCnt
  36.         );
  37.     }
  38.     }
  39.     for (i = 1; i < ac; ++i) {
  40.     lib = OpenLibrary(av[i], 0);
  41.     if (lib) {
  42.         RemLibrary(lib);
  43.         printf("library refs: %ld\n", lib->lib_OpenCnt - 1);
  44.         puts("Will expunge on last close if no new opens");
  45.         CloseLibrary(lib);
  46.     } else {
  47.         puts("Unable to open library");
  48.     }
  49.     }
  50. }
  51.